﻿using System;
using System.Windows.Forms;
using System.Net;
using System.IO;
using System.Xml;

namespace WFCSharp_II
{
    public partial class DemoWebRequest : Form
    {
        XmlDocument xmlDoc = new XmlDocument();

        public DemoWebRequest()
        {
            InitializeComponent();
        }

        private void goButton_Click(object sender, EventArgs e)
        {
            try
            {
                // Tạo một web request để gọi đến server web, gọi đến link nằm trong textBox1
                HttpWebRequest request = (HttpWebRequest)System.Net.WebRequest.Create(textBox1.Text);

                // Khai báo loại dữ liệu mà mình mong muốn nhận về
                request.Accept = "application/xml";

                // Khai báo thông tin "trình duyệt", đang khai báo giả như Firefox
                request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64)";

                // Tạo một web response, hỗ trợ mình lấy kết quả trả về từ server
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();

                // Stream là class chứa dữ liệu trả về
                Stream stream = response.GetResponseStream();

                // Đọc dữ liệu trong Stream ra RichTextBox
                if (stream != null)
                {
                    StreamReader reader = new StreamReader(stream);

                    // Load dữ liệu vô XmlDocument
                    xmlDoc.Load(reader);

                    // Lấy các tag item
                    XmlNodeList itemNodes = xmlDoc.GetElementsByTagName("item");

                    // Tạo node gốc, tên là Trang chủ
                    TreeNode rootNode = new TreeNode(xmlDoc.SelectNodes("/rss/channel/title")[0].InnerText);

                    // Duyệt qua các node tag item, mỗi cái tạo một TreeNode là con của rootNode
                    foreach (XmlNode i in itemNodes)
                    {
                        TreeNode node = new TreeNode();

                        node.Text = i.ChildNodes[0].InnerText;
                        node.Tag = i.ChildNodes[2].InnerText;

                        rootNode.Nodes.Add(node);
                    }

                    treeView1.Nodes.Add(rootNode);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Cố thêm lần nữa. Lỗi : " + ex.Message);
            }
        }

        private void treeView1_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
        {
            webBrowser1.Url = new Uri((string) e.Node.Tag);
        }
    }
}
